void PreorderTraversal( BinTree BT ){
    Stack s = CreateStack();
    BinTree p, q;
    p = BT;
    while(p||!IsEmpty(s)){
        if(p){
            printf(" %c", p->Data);
            Push(s,p);
            p=p->Left;
        }else{
            q = Pop(s);
            p = q->Right;
        }
    }
    return;
}
